package com.ruoyi.basebill.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * BOM成本测算对象 t_bom_costcalc
 * 
 * @author ruoyi
 * @date 2024-09-06
 */
public class BomCostcalc extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** ID */
    private String fid;
    /** ID */
    private String[] ids;

    /** 单据编码 */
    @Excel(name = "单据编码",needMerge = true)
    private String number;

    /** 客户 */
    @Excel(name = "客户",needMerge = true)
    private String cfcustomerid;

    /** 制单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "制单日期", width = 30, dateFormat = "yyyy-MM-dd",needMerge = true)
    private Date fbizdate;

    /** 状态 */
    @Excel(name = "状态",dictType = "bill_state",needMerge = true)
    private String cfstate;

    /** 是否进入产品库 */
    @Excel(name = "是否进入产品库",dictType = "yes_no",needMerge = true)
    private Long ffivouchered;

    /** 产品代码 */
    @Excel(name = "产品代码",needMerge = true)
    private String cfmaterialid;

    /** 产品名称 */
    @Excel(name = "产品名称",needMerge = true)
    private String cfmaterialname;
    /** 是否存在新品 */
    @Excel(name = "是否存在新品",dictType = "yes_no",needMerge = true)
    private String isnewmaterial;
    /** 是否存在上游单据 */
    @Excel(name = "是否存在上游单据",dictType = "yes_no",needMerge = true)
    private String istopbill;
    /** 来源单据编码 */
    @Excel(name = "来源单据编码",needMerge = true)
    private String sournumber;

    /** 合计材料成本 */
    @Excel(name = "合计材料成本",needMerge = true,cellType= Excel.ColumnType.NUMERIC)
    private BigDecimal cftotalmaterialcost;

    /** 合计成本 */
    @Excel(name = "合计成本",needMerge = true,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal cftotalcost;

    /** 含税成本 */
    @Excel(name = "含税成本",needMerge = true,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal cftaxcost;

    /** 包装成本 */
    @Excel(name = "包装成本",needMerge = true,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal cfpackcost;

    /** 变动费用 */
    @Excel(name = "变动费用",needMerge = true,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal cfalterationfee;

    /** 固定费用 */
    @Excel(name = "固定费用",needMerge = true,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal cffixedfee;

    /** 税率 */
    @Excel(name = "税率",needMerge = true,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal cftaxrate;

    /** 规格 */
    @Excel(name = "规格",needMerge = true)
    private String cfmodel;

    /** 计量单位 */
    @Excel(name = "计量单位",needMerge = true)
    private String cfbaseunit;

    /** 项目 */
    @Excel(name = "项目",needMerge = true)
    private String cfprojecttxt;

    /** 部门id */
    private Long deptId;

    /** 部门编码 */
    private String fsourcefunction;

    /** 部门名称 */
    @Excel(name = "部门名称",needMerge = true)
    private String deptName;

    /** 备注 */
    @Excel(name = "备注",needMerge = true)
    private String cfremarktxt;

    /** 时间类型 */
    @Excel(name = "时间类型",dictType = "bom_seasontype",needMerge = true)
    private String cfseasontypeid;

    /** 基地 */
    @Excel(name = "基地",dictType = "bom_wfzbase",needMerge = true)
    private String cfwfzbaseid;

    /** 品类 */
    @Excel(name = "品类",dictType = "bom_usercategory",needMerge = true)
    private String fdescription;

    /** 成本测算分录信息 */
    @Excel(name = "分录",needMerge = true)
    private List<BomCostcalcentry> bomCostcalcentryList;
    /** 测算需求ID */
    private String cfcalcdemandid;

    /** 创建人 */
    private String fcreatorid;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date fcreatetime;

    /** 最后修改人 */
    private String flastupdateuserid;

    /** 最后修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date flastupdatetime;

    /** 产品代码是否为f7 */
    private String fhandlerid;

    /** 长编码 */
    private String longCode;

    /** 是否曾经生效 */
    private Long fhaseffected;

    /** 审核人 */
    private String fauditorid;

    /** 物料分类编码 */
    private String fsourcebillid;

    public void setFid(String fid) 
    {
        this.fid = fid;
    }

    public String[] getIds() {
        return ids;
    }

    public void setIds(String[] ids) {
        this.ids = ids;
    }

    public String getSournumber() {
        return sournumber;
    }

    public String getLongCode() {
        return longCode;
    }

    public void setLongCode(String longCode) {
        this.longCode = longCode;
    }

    public void setSournumber(String sournumber) {
        this.sournumber = sournumber;
    }

    public String getIstopbill() {
        return istopbill;
    }

    public void setIstopbill(String istopbill) {
        this.istopbill = istopbill;
    }

    public String getIsnewmaterial() {
        return isnewmaterial;
    }

    public void setIsnewmaterial(String isnewmaterial) {
        this.isnewmaterial = isnewmaterial;
    }

    public String getFid()
    {
        return fid;
    }
    public void setFcreatorid(String fcreatorid) 
    {
        this.fcreatorid = fcreatorid;
    }

    public String getFcreatorid() 
    {
        return fcreatorid;
    }
    public void setFcreatetime(Date fcreatetime) 
    {
        this.fcreatetime = fcreatetime;
    }

    public Date getFcreatetime() 
    {
        return fcreatetime;
    }
    public void setFlastupdateuserid(String flastupdateuserid) 
    {
        this.flastupdateuserid = flastupdateuserid;
    }

    public String getFlastupdateuserid() 
    {
        return flastupdateuserid;
    }
    public void setFlastupdatetime(Date flastupdatetime) 
    {
        this.flastupdatetime = flastupdatetime;
    }

    public Date getFlastupdatetime() 
    {
        return flastupdatetime;
    }

    public void setFbizdate(Date fbizdate) 
    {
        this.fbizdate = fbizdate;
    }

    public Date getFbizdate() 
    {
        return fbizdate;
    }
    public void setFhandlerid(String fhandlerid) 
    {
        this.fhandlerid = fhandlerid;
    }

    public String getFhandlerid() 
    {
        return fhandlerid;
    }
    public void setFdescription(String fdescription) 
    {
        this.fdescription = fdescription;
    }

    public String getFdescription() 
    {
        return fdescription;
    }
    public void setFhaseffected(Long fhaseffected) 
    {
        this.fhaseffected = fhaseffected;
    }

    public Long getFhaseffected() 
    {
        return fhaseffected;
    }
    public void setFauditorid(String fauditorid) 
    {
        this.fauditorid = fauditorid;
    }

    public String getFauditorid() 
    {
        return fauditorid;
    }
    public void setFsourcebillid(String fsourcebillid) 
    {
        this.fsourcebillid = fsourcebillid;
    }

    public String getFsourcebillid() 
    {
        return fsourcebillid;
    }
    public void setFsourcefunction(String fsourcefunction) 
    {
        this.fsourcefunction = fsourcefunction;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getFsourcefunction()
    {
        return fsourcefunction;
    }
    public void setFfivouchered(Long ffivouchered) 
    {
        this.ffivouchered = ffivouchered;
    }

    public Long getFfivouchered() 
    {
        return ffivouchered;
    }
    public void setCfcustomerid(String cfcustomerid) 
    {
        this.cfcustomerid = cfcustomerid;
    }

    public String getCfcustomerid() 
    {
        return cfcustomerid;
    }
    public void setCftotalmaterialcost(BigDecimal cftotalmaterialcost) 
    {
        this.cftotalmaterialcost = cftotalmaterialcost;
    }

    public BigDecimal getCftotalmaterialcost() 
    {
        return cftotalmaterialcost;
    }
    public void setCftotalcost(BigDecimal cftotalcost) 
    {
        this.cftotalcost = cftotalcost;
    }

    public BigDecimal getCftotalcost() 
    {
        return cftotalcost;
    }
    public void setCftaxcost(BigDecimal cftaxcost) 
    {
        this.cftaxcost = cftaxcost;
    }

    public BigDecimal getCftaxcost() 
    {
        return cftaxcost;
    }
    public void setCfpackcost(BigDecimal cfpackcost) 
    {
        this.cfpackcost = cfpackcost;
    }

    public BigDecimal getCfpackcost() 
    {
        return cfpackcost;
    }
    public void setCfalterationfee(BigDecimal cfalterationfee) 
    {
        this.cfalterationfee = cfalterationfee;
    }

    public BigDecimal getCfalterationfee() 
    {
        return cfalterationfee;
    }
    public void setCffixedfee(BigDecimal cffixedfee) 
    {
        this.cffixedfee = cffixedfee;
    }

    public BigDecimal getCffixedfee() 
    {
        return cffixedfee;
    }
    public void setCftaxrate(BigDecimal cftaxrate) 
    {
        this.cftaxrate = cftaxrate;
    }

    public BigDecimal getCftaxrate() 
    {
        return cftaxrate;
    }
    public void setCfstate(String cfstate) 
    {
        this.cfstate = cfstate;
    }

    public String getCfstate() 
    {
        return cfstate;
    }
    public void setCfmaterialid(String cfmaterialid) 
    {
        this.cfmaterialid = cfmaterialid;
    }

    public String getCfmaterialid() 
    {
        return cfmaterialid;
    }
    public void setCfmaterialname(String cfmaterialname) 
    {
        this.cfmaterialname = cfmaterialname;
    }

    public String getCfmaterialname() 
    {
        return cfmaterialname;
    }
    public void setCfmodel(String cfmodel) 
    {
        this.cfmodel = cfmodel;
    }

    public String getCfmodel() 
    {
        return cfmodel;
    }
    public void setCfbaseunit(String cfbaseunit) 
    {
        this.cfbaseunit = cfbaseunit;
    }

    public String getCfbaseunit() 
    {
        return cfbaseunit;
    }
    public void setCfprojecttxt(String cfprojecttxt) 
    {
        this.cfprojecttxt = cfprojecttxt;
    }

    public String getCfprojecttxt() 
    {
        return cfprojecttxt;
    }
    public void setCfremarktxt(String cfremarktxt) 
    {
        this.cfremarktxt = cfremarktxt;
    }

    public String getCfremarktxt() 
    {
        return cfremarktxt;
    }
    public void setCfseasontypeid(String cfseasontypeid) 
    {
        this.cfseasontypeid = cfseasontypeid;
    }

    public String getCfseasontypeid() 
    {
        return cfseasontypeid;
    }
    public void setCfwfzbaseid(String cfwfzbaseid) 
    {
        this.cfwfzbaseid = cfwfzbaseid;
    }

    public String getCfwfzbaseid() 
    {
        return cfwfzbaseid;
    }

    public String getCfcalcdemandid() {
        return cfcalcdemandid;
    }

    public void setCfcalcdemandid(String cfcalcdemandid) {
        this.cfcalcdemandid = cfcalcdemandid;
    }

    public List<BomCostcalcentry> getBomCostcalcentryList()
    {
        return bomCostcalcentryList;
    }

    public void setBomCostcalcentryList(List<BomCostcalcentry> bomCostcalcentryList)
    {
        this.bomCostcalcentryList = bomCostcalcentryList;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("fid", getFid())
            .append("fcreatorid", getFcreatorid())
            .append("fcreatetime", getFcreatetime())
            .append("flastupdateuserid", getFlastupdateuserid())
            .append("flastupdatetime", getFlastupdatetime())
            .append("number", getNumber())
            .append("fbizdate", getFbizdate())
            .append("fhandlerid", getFhandlerid())
            .append("fdescription", getFdescription())
            .append("fhaseffected", getFhaseffected())
            .append("fauditorid", getFauditorid())
            .append("fsourcebillid", getFsourcebillid())
            .append("fsourcefunction", getFsourcefunction())
            .append("ffivouchered", getFfivouchered())
            .append("cfcustomerid", getCfcustomerid())
            .append("cftotalmaterialcost", getCftotalmaterialcost())
            .append("cftotalcost", getCftotalcost())
            .append("cftaxcost", getCftaxcost())
            .append("cfpackcost", getCfpackcost())
            .append("cfalterationfee", getCfalterationfee())
            .append("cffixedfee", getCffixedfee())
            .append("cftaxrate", getCftaxrate())
            .append("cfstate", getCfstate())
            .append("cfmaterialid", getCfmaterialid())
            .append("cfmaterialname", getCfmaterialname())
            .append("cfmodel", getCfmodel())
            .append("cfbaseunit", getCfbaseunit())
            .append("cfprojecttxt", getCfprojecttxt())
            .append("cfremarktxt", getCfremarktxt())
            .append("cfseasontypeid", getCfseasontypeid())
            .append("cfwfzbaseid", getCfwfzbaseid())
            .append("bomCostcalcentryList", getBomCostcalcentryList())
            .toString();
    }
}
